// Generated from Hello.g4 by ANTLR 4.4 package grammar; import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; import org.antlr.v4.runtime.*; import org.antlr.v4.runtime.misc.*; import org.antlr.v4.runtime.tree.*; import java.util.List; import java.util.Iterator; import java.util.ArrayList; @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class HelloParser extends Parser { static { RuntimeMetaData.checkVersion("4.4", RuntimeMetaData.VERSION); } protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); public static final int Bool=1, Int=2, Float=3, IF=4, ELSE=5, AND=6, OR=7, WS=8, TRUE=9, FALSE=10, ID=11; public static final String[] tokenNames = { "<INVALID>", "Bool", "Int", "Float", "'if'", "'else'", "'&&'", "'||'", "WS", "TRUE", "FALSE", "ID" }; public static final int RULE_r = 0, RULE_expr = 1; public static final String[] ruleNames = { "r", "expr" }; @Override public String getGrammarFileName() { return "Hello.g4"; } @Override public String[] getTokenNames() { return tokenNames; } @Override public String[] getRuleNames() { return ruleNames; } @Override public String getSerializedATN() { return _serializedATN; } @Override public ATN getATN() { return _ATN; } public HelloParser(TokenStream input) { super(input); _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); } public static class RContext extends ParserRuleContext { public TerminalNode Float() { return getToken(HelloParser.Float, 0); } public RContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_r; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof HelloListener ) ((HelloListener)listener).enterR(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof HelloListener ) ((HelloListener)listener).exitR(this); } } public final RContext r() throws RecognitionException { RContext _localctx = new RContext(_ctx, getState()); enterRule(_localctx, 0, RULE_r); try { enterOuterAlt(_localctx, 1); { setState(4); match(Float); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; } public static class ExprContext extends ParserRuleContext { public List<ExprContext> expr() { return getRuleContexts(ExprContext.class); } public TerminalNode Bool() { return getToken(HelloParser.Bool, 0); } public ExprContext expr(int i) { return getRuleContext(ExprContext.class,i); } public TerminalNode AND() { return getToken(HelloParser.AND, 0); } public TerminalNode OR() { return getToken(HelloParser.OR, 0); } public ExprContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @Override public int getRuleIndex() { return RULE_expr; } @Override public void enterRule(ParseTreeListener listener) { if ( listener instanceof HelloListener ) ((HelloListener)listener).enterExpr(this); } @Override public void exitRule(ParseTreeListener listener) { if ( listener instanceof HelloListener ) ((HelloListener)listener).exitExpr(this); } } public final ExprContext expr() throws RecognitionException { return expr(0); } private ExprContext expr(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); ExprContext _localctx = new ExprContext(_ctx, _parentState); ExprContext _prevctx = _localctx; int _startState = 2; enterRecursionRule(_localctx, 2, RULE_expr, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { setState(7); match(Bool); } _ctx.stop = _input.LT(-1); setState(17); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,1,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { setState(15); switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { case 1: { _localctx = new ExprContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expr); setState(9); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); setState(10); match(AND); setState(11); expr(4); } break; case 2: { _localctx = new ExprContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_expr); setState(12); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); setState(13); match(OR); setState(14); expr(3); } break; } } } setState(19); _errHandler.sync(this); _alt = getInterpreter().adaptivePredict(_input,1,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { unrollRecursionContexts(_parentctx); } return _localctx; } public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { case 1: return expr_sempred((ExprContext)_localctx, predIndex); } return true; } private boolean expr_sempred(ExprContext _localctx, int predIndex) { switch (predIndex) { case 0: return precpred(_ctx, 3); case 1: return precpred(_ctx, 2); } return true; } public static final String _serializedATN = "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\r\27\4\2\t\2\4\3"+ "\t\3\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\7\3\22\n\3\f\3\16\3\25"+ "\13\3\3\3\2\3\4\4\2\4\2\2\26\2\6\3\2\2\2\4\b\3\2\2\2\6\7\7\5\2\2\7\3\3"+ "\2\2\2\b\t\b\3\1\2\t\n\7\3\2\2\n\23\3\2\2\2\13\f\f\5\2\2\f\r\7\b\2\2\r"+ "\22\5\4\3\6\16\17\f\4\2\2\17\20\7\t\2\2\20\22\5\4\3\5\21\13\3\2\2\2\21"+ "\16\3\2\2\2\22\25\3\2\2\2\23\21\3\2\2\2\23\24\3\2\2\2\24\5\3\2\2\2\25"+ "\23\3\2\2\2\4\21\23"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); } } }